//
// Created by ze on 2023/12/30.
//

#ifndef NIUMA1_UPRE_ROBOT_TASK_H
#define NIUMA1_UPRE_ROBOT_TASK_H

#include "stdbool.h"
#include "UPRE_GLOBAL_DEFINE.h"
void PATH_GoB_SplinePAth(void);
void Remake_Path(void);
void Go_Auto_Find_Ball_Path(void);
void Auto_Return_Goal_Path(void);
typedef struct{
    //是否到达三区
    bool Flag_ReachZone3;
    //指挥是否转向谷仓
    bool GO_Target_Yaw;
// 转向谷仓中间的状态    1为转到位   0为未转到
    bool Target_Yaw_State;
//强制关闭路径
    bool Forced_Close_Path;
//成功关闭路径
    bool Forced_Close_Path_OK;
    //收到深度相机的坐标值,开始找球
    bool Start_Find_Ball;
    //机器人在三区的东半场还是西半场
    bool Robot_In_East_Half;
    //开启DT35修正
    bool Start_DT35_Fix;
    //成功收到蓝球
    bool Recv_Blue_Ball;
    //挂起B样条任务
    bool Off_B_Spline;
    //时间戳
    bool On_Time;
}Chassis_Sense_Bool_Def;
typedef struct {
    //去哪一个谷仓
    int Which_Goal;
    //存储上一次目标谷仓值
    int Last_Which_Goal;
    //机器人到谷仓顶部的高度
    float High_To_Goal_Top;
    //机器人到谷仓底座的高度
    float High_To_Goal_Bottom;
    //DT35第一次修正的值
    float DT35_Fix_First;
    //DT35修正值
    float DT35_Fix;
    //存储第一次修正的Y值
    float Store_Fix_X;
}Chassis_Sense_Value_Def;
extern uint8_t Flag_2_ICE;
extern uint8_t Go_Num_Re;
extern int32_t Time_;
extern uint8_t gyro_sum;
extern uint8_t Num_To_Goal;
extern uint8_t g_Auto_Num;
extern bool Is_Remake;
extern point Camera_Return;
extern Chassis_Sense_Bool_Def Chassis_Sense_Bool;
extern Chassis_Sense_Value_Def Chassis_Sense_Value;

#endif //NIUMA1_UPRE_ROBOT_TASK_H
